﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using PagSeguro.Mvc.ActionFilters;

namespace PagSeguro.Mvc.LojaExemplo.Controllers
{
    public class VendasController : Controller
    {
        #region CONSTANTES

        // Usamos uma URL para testes locais. Caso não informe a url, será usada a do PagSeguro
        private static readonly string URLNPI = "http://localhost:9090/pagseguro-ws/checkout/NPI.jhtml";
        private static readonly string TOKEN = "{seu_token_aqui}";

        #endregion

        // GET
        public ActionResult Retorno() 
        { 
            return View(); 
        }

        // POST
        [HttpPost]
        public ActionResult Retorno(RetornoAutomatico retorno)
        {
            // Valida os dados da transação enviada pelo retorno automático do PagSeguro.
            var resultado = retorno.Validar(TOKEN);

            switch (resultado.Status)
            {
                case StatusDaValidacao.Verificado:
                    // Os dados enviados do PagSeguro são válidos. 
                    break;

                case StatusDaValidacao.Falso:
                    // Os dados enviados são inválidos.
                    break;

                case StatusDaValidacao.ErroComunicacao:
                    // Erro na comunicação com PagSeguro
                    // Analisar a exception => "resultado.Excecao"
                    break;

                default:
                    break;
            }

            return View();
        }
    }
}
